# 设置cmake的最低版本
cmake_minimum_required(VERSION 3.0)
# 设置工程名称和版本
project(run VERSION 1.0)

# 设置指定的C++编译器版本是必须的，如果不设置，或者为OFF，则指定版本不可用时，会使用上一版本。
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# # 指定为C++11 版本
# set(CMAKE_CXX_STANDARD 11)
# 指定为C++14 版本
set(CMAKE_CXX_STANDARD 14)

message(STATUS "optional:-std=c++14")
string(TIMESTAMP BUILD_TIMESTAMP "%Y-%m-%d %H:%M:%S")
message("Build timestamp is ${BUILD_TIMESTAMP}")

include_directories(./include)

# aux_source_directory(./src SRC)
file(GLOB_RECURSE SRC "./src/*.cpp") #递归搜索

add_executable(${PROJECT_NAME} ${SRC})

# target_link_libraries(${PROJECT_NAME} pthread)

# 静态链接方式链接spdlog日志库
## 添加spdlogConfig.cmake的搜索路径
#set(spdlog_DIR /data/project/spdlog/build)
#if(NOT TARGET spdlog)
#    # Stand-alone build
#    find_package(spdlog REQUIRED)
#endif()
#target_link_libraries(${PROJECT_NAME} PRIVATE pthread spdlog::spdlog)

# INTERFACE库不生成库文件，但可以设置属性给其他目标链接使用
add_library(spdlog_header_only INTERFACE)
# INTERFACE形式设置头文件位置，自己不用，只给其他目标用
target_include_directories(
    spdlog_header_only
    INTERFACE
    "$<BUILD_INTERFACE:/data/project/spdlog/include>"
)
target_link_libraries(${PROJECT_NAME} PRIVATE pthread spdlog_header_only)
